1. Field of the Invention
The present invention is related to multiprocessing systems, and more particularly to saving power in multi-processor systems.
2. Background
Some processing systems include multiple processing units (such as, for example, multiple graphics processing units—GPUs) to allow for performance gains through parallel processing of tasks. Exemplary tasks may include, for example, video processing, graphics processing, physics simulations and the like. A graphics-intensive game may be running that requires or can benefit from having the additional processing power provided by multiple active GPUs. Other applications, however, do not benefit from such increased processing power. When these applications are being run, less graphics processing power is necessary. This can be accomplished by reducing the number or GPUs or by switching from one GPU to another with lower capabilities.
GPUs are typically coupled to a central processing unit (CPU) through a bus, e.g., a peripheral component interconnect (PCI) or PCI express bus and may be included in another device (e.g., a northbridge device). Alternatively, a GPU or other type of core or processor may be included as part of the same package or same die as a CPU
An operating system, running on a CPU, usually generates configuration cycles. When a device does not respond to the configuration cycles, e.g., when the device is turned off, the operating system can cause complex processes (e.g., plug-and-play processes) to be executed that can have negative effects on the user experience. Thus, powering on and off devices is often operating system dependent. To prevent these negative effects, many graphics systems keep GPUs powered (even those that are not being used) so that they can respond to configuration cycles generated by the CPU. Keeping unused GPUs powered, however, can result in inefficient power usage and, in mobile systems, decreased battery life.
What is needed, then, are methods and systems that allow processors to be placed in reduced-power states without conflicting with system behavior or limitations, e.g. by responding to bus configuration cycles while the device is turned off.